Present-day cellular phones generally exercise application execution management in a single-tasking manner.
If, for instance, an instruction is issued to execute an application while another application is being executed, the priorities of these applications are detected. A low-priority application is aborted to launch a high-priority application. Application conflict management is exercised in this manner.
If there is an incoming call while an e-mail message is being created, an application for e-mail message creation is aborted to launch an incoming call processing application and perform an incoming call handling process. The reason is that the incoming call processing application has a higher priority than the e-mail message creation application. Consequently, the e-mail message creation process is stopped so as to preferentially process the incoming call.
Meanwhile, personal computers, which have a higher information processing capability (performance) than cellular phones, generally exercise application execution management in a multi-tasking manner.
If an application conflict occurs, the personal computers exercise either of the following conflict management methods.
In a first conflict management method, the operating system (OS) changes the priority of a currently executed application (lowers the priority) without regard to the current state of the currently executed application, and preferentially executes another application whose execution is dictated later.
More specifically, if, for instance, the user issues an instruction for launching word-processing software while spreadsheet software is being executed, the OS puts the spreadsheet software on standby and preferentially launches the word-processing software. This ensures that a document can be created with the word-processing software while a table creation operation performed by the spreadsheet software is interrupted.
In a second conflict management method, a conflicting application is predicted when an application is programmed, and the latter application is programmed so that the two applications communicate with each other in the event of a conflict and that one of the two applications changes its priority in accordance with the state of the other application.
When the second conflict management method is used, the priorities of the conflicting applications are determined in accordance with the communication established between the conflicting applications. It means that the applications autonomously exercise conflict management.
A related art concerning the above application management is disclosed by Japanese Translations of PCT for Patent No. 2003-504753.
As described earlier, present-day cellular phones exercise application conflict management in a single-tasking manner. However, it is predicted that future cellular phones will exercise application execution management in a multi-tasking manner.
If the aforementioned first or second management method is used for conflict management purposes, the following problems arise.
When conflict management is exercised by the aforementioned first conflict management method, the OS aborts a currently executed application and executes a later-designated application without recognizing the current state of the currently executed application. Therefore, when the application that was put on standby (previously executed application) is resumed upon termination of execution of the later-designated application, the application that was put on standby might improperly run (the operation of the application that was put on standby cannot be guaranteed).
When conflict management is exercised by the aforementioned second conflict management method, it is necessary to program an application while predicting all conflicting applications. Such prediction is difficult when the number of conflicting applications increases or when the system becomes complicated.
If a change occurs in the specifications for an application while the aforementioned second conflict management method is used, it is necessary to change the specifications for all the other relevant applications accordingly. Thus, it is anticipated that it would be necessary to perform a troublesome task. More specifically, it would be necessary to reprogram and reinstall a number of applications (for applying changes to application designs and implementations).
The use of conflict management methods in related art, which provide multi-tasking, makes it necessary to consider the above circumstances and renders software development difficult.